#ifndef __LIST_H__
#define __LIST_H__

#include "head.h"

// 声明函数

//创建一个带头结点的双向链表
p_list create_list();

//计算学生文件中课程数量
int coursecount();

//老师录入学生成绩
int print_scorse(p_list list,p_list phead);

//插入数据到链表
int insert_list(p_list head,user_data data);

//选课
void choose_course(p_list list);

//将链表更新到文件
int list_update_file(p_list list,char *file);

//将文件更新到链表
int file_update_list(p_list list,char *file);

//查询信息
p_list find_list(p_list list,char *id);

//修改密码
int change_password(p_list list,char *id);

//删除学生信息
int del_list(p_list list);

//老师修改
int teacher_change_list(p_list list);

//按成绩排序
int sort_scorce(p_list list);

//按班级排序
int sort_class(p_list list);

//按账号排序
int sort_id(p_list list);

//输出排好序的学生成绩
int show_scorse(p_list list);

//选课情况
int course_situation(p_list list);

//判断所选课程是否已满
int if_full(int i);

//将选课情况写入文件
int course_file(p_list list);

//遍历链表
int show_list(p_list head);

//判断是否有重复课程
int reacourse(p_list head,int option,int flag);

//老师查选课情况
int student_choose(p_list p);


#endif
